home *** CD-ROM | disk | FTP | other *** search
/ Tech Arsenal 1 / Tech Arsenal (Arsenal Computer).ISO / tek-02 / infop125.zip / PAGE_07.INC < prev    next >
Text File  |  1990-08-10  |  3KB  |  140 lines

  1. procedure page_07;
  2.  
  3. const
  4.   mouseint = $33;
  5.  
  6. var
  7.   xbyte : byte;
  8.   xword1 : word;
  9.   xword2 : word;
  10.  
  11.   begin
  12.   caption2('Keyboard');
  13.   writeln;
  14.   caption3('BIOS support for enhanced keyboard');
  15.   with regs do
  16.     begin
  17.     AH:=$02;
  18.     intr($16, regs);
  19.     xbyte:=AL;
  20.     AX:=$1200 + xbyte xor $FF;
  21.     intr($16, regs);
  22.     if AL = xbyte then
  23.       begin
  24.       write('yes');
  25.       caption3('Enhanced keyboard present');
  26.       yesorno(mem[BIOSdseg : $0096] and $10 = $10)
  27.       end
  28.     else
  29.       writeln('no');
  30. (*  PC Magazine 6:15 p.378  *)
  31.     AH:=$02;
  32.     intr($16, regs);
  33.     offoron('Insert     ', AL and $80 = $80);
  34.     offoron('Caps Lock  ', AL and $40 = $40);
  35.     offoron('Num Lock   ', AL and $20 = $20);
  36.     offoron('Scroll Lock', AL and $10 = $10)
  37.     end;
  38.   caption3('Buffer start');
  39.   xword1:=memw[BIOSdseg : $0080];
  40.   segofs(BIOSdseg, xword1);
  41.   caption3(' end');
  42.   xword2:=memw[BIOSdseg : $0082];
  43.   segofs(BIOSdseg, xword2);
  44.   caption3(' size (keystrokes)');
  45.   writeln((xword2 - xword1) shr 1 - 1);
  46.   caption2('Internal modem/serial printer');
  47.   yesorno(equip and $2000 = $2000);
  48.   caption2('Game port');
  49.   yesorno(equip and $1000 = $1000);
  50.   caption2('Mouse');
  51.   with regs do
  52.     begin
  53.     AX:=$0000;
  54.     intr(mouseint, regs);
  55.     if AX = $FFFF then
  56.       begin
  57.       writeln('yes');
  58.       caption3('Buttons');
  59.       writeln(BX);
  60.       caption3('EGA register support');
  61.       AH:=$FA;
  62.       BX:=0;
  63.       Intr($10, regs);
  64.         if BX <> 0 then
  65.         begin
  66.         Write('yes');
  67.         caption3('version');
  68.         Writeln(Mem[ES:BX], Chr(country[9]), Mem[ES:BX+1])
  69.         end
  70.       else
  71.         Writeln('no');
  72.       caption3('Save state buffer size (bytes)');
  73.       AX:=$0015;
  74.       intr(mouseint, regs);
  75.       writeln(BX);
  76.       caption3('Mickeys/pixel (horizontal)');
  77.       AX:=$001B;
  78.       intr(mouseint, regs);
  79.       write(BX : 5);
  80.       caption3(' (vertical)');
  81.       writeln(CX : 5);
  82.       caption3('Double speed threshold');
  83.       writeln(DX);
  84.       caption3('Current display page');
  85.       AX:=$001E;
  86.       intr(mouseint, regs);
  87.       writeln(BX);
  88.       caption3('Language');
  89.       AX:=$0023;
  90.       intr(mouseint, regs);
  91.       if AX < $FFFF then
  92.         case BX of
  93.           0: Writeln('English');
  94.           1: Writeln('French');
  95.           2: Writeln('Dutch');
  96.           3: Writeln('German');
  97.           4: Writeln('Swedish');
  98.           5: Writeln('Finnish');
  99.           6: Writeln('Spanish');
  100.           7: Writeln('Portuguese');
  101.           8: Writeln('Italian')
  102.         else
  103.           unknown('language', BX, 4)
  104.         end {case BX}
  105.       else
  106.         writeln('N/A');
  107.       caption3('Driver version');
  108.       AX:=$0024;
  109.       intr(mouseint, regs);
  110.       if AX < $FFFF then
  111.         begin
  112.         write(BH, Chr(country[9]));
  113.         zeropad(BL);
  114.         writeln;
  115.         caption3('Type');
  116.         case CH of
  117.           $01 : writeln('bus');
  118.           $02 : writeln('serial');
  119.           $03 : writeln('InPort');
  120.           $04 : writeln('PS/2');
  121.           $05 : writeln('HP')
  122.           else
  123.             unknown('mouse', CH, 2)
  124.         end;
  125.         caption3('Interrupt');
  126.         case CL of
  127.           $00 : writeln('PS/2');
  128.           $02..$05, $07 : writeln('IRQ', CL)
  129.           else
  130.             unknown('interrupt', CL, 2)
  131.         end
  132.         end
  133.       else
  134.         dontknow
  135.       end
  136.     else
  137.       writeln('no')
  138.     end
  139.   end;
  140.